专利摘要:
The present invention relates to a method for controlling load distribution in a device consisting of a plurality of host processors (12) connected to a data storage device (14) comprising a digital storage section divided into a plurality of volumes. Assigning ownership of the volume 80 to a host processor 12 having a different subset of the plurality of volumes, the host processor sending an I / O request to a volume not owned by the host processor. Do not do it. Monitoring the I / O requests sent to each volume by each of the host processors, and generating load statistics for the distribution of load in the host processor from the information obtained through the monitoring steps. And distributing the load amount distribution in the host processor by reallocating the ownership of the volume to the host processor, detecting the load amount imbalance in the load statistics, and detecting the load amount imbalance in the step. It consists of the steps to change.
公开号:KR19990035802A
申请号:KR1019980700461
申请日:1996-07-16
公开日:1999-05-25
发明作者:요브 라즈;나탄 비슈리츠키;브루노 앨터레스큐;앨런 엘 셰어
申请人:폴더 데이씨에르, 데이시어 폴 티, 모쉬 야네;이엠씨 코포레이션;
IPC主号:
专利说明:

How to adjust dynamic load
Such systems have conventionally been implemented by assigning one or more storage devices, or disk assemblies, to each host processor. Each such host processor has dedicated access to the storage device itself, and each host processor cannot access the storage of another host processor.
If the database portion controlled by a particular host processor is accessed much more frequently than other databases, the host processor in charge of the database portion becomes a bottleneck and degrades the performance of all DBSs. Because only one host processor has access to the hot portion of the database, no other host processor can run the processor. Therefore, the other processor is partially idle, while only the busy host processor is performing the load. This results in insufficient use of resources and poor performance than would have been possible if all processors had performed processing fairly evenly.
The present invention is directed to load balancing (e.g., a non-shared database system) in a parallel database system.
A parallel database system (DBS) that provides a shared nothing architecture (DBS) distributes databases among a number of host processors that run the DBS.
1 is a block diagram of a parallel database system,
2 is a logical block diagram of the parallel database system of FIG.
3A and 3B show ownership tables before and after volume reallocation;
4A and 4B show the contents of a table for managing a host processor to store a load amount according to each logical volume in the data storage device.
5A and 5B show the contents of a table for managing a host processor to store a load amount for each of the host processors.
Figure 6 shows the contents of a table in the data storage that controls the logical volume to be accessible through a host connection.
One solution to this problem is to rebalance the DBS by redistributing the hot portion of the database among other host processors. Therefore, the other host processor handles requests for greatly improved database portion and processing efficiency. Such redistribution is in particular operated by copying the database portion from the host to the host, which is generally able to concentrate resources and time very effectively.
In an embodiment, the data storage device may allow a plurality of hosts to access a plurality of volumes. In accordance with the present invention, load rebalancing can be performed by appropriately mapping a logical storage volume to the database files / extensions, and a host (e.g., the host is responsible for any conventional communication channel). Is used to dynamically establish host / volume ownership. By such a match, a logical volume is accessed only by itself (ie, the host processor in charge of the logical volume). This matching maintains the database allocated among the host processors (e.g., one processor for each subset of a plurality of logical volumes). The agreement is established by one host processor making all decisions about host / volume ownership and the other host processor first agreeing to such a decision.
In general, in one embodiment, the invention is directed to a method of controlling distribution processing in a system comprising a plurality of host processors coupled to a data storage device. Such a data storage device includes a digital memory that is divided into a plurality of volumes. The method includes assigning ownership of the volume to the host processor as each host processor owns a different subset of volumes. The idea of ownership is to prevent I / O requests from being sent to volumes outside the subset of volumes that the host processor itself has. And the method comprises the steps of: monitoring I / O requests sent to each volume of each host processor; generating load statistics from the monitored information by indicating distribution of load in the host processor; Detecting the nonuniformity of the load amount and reallocating ownership of the volume to the host processor such that the load amount distribution of the host processor is changed in accordance with the detection of the nonuniformity of the load amount.
Preferred embodiments include the following features. The method of the present invention preferably comprises storing the distribution of load quantities in a memory accessible to at least one host processor of the host processors, and during the detection step, the load statistics deviate beyond the desired distribution from the desired distribution. Detecting whether or not a load has occurred, and preferably comparing the load quantity. The generation of load statistics is to calculate the load amount for each volume and to measure the load amount of each volume to generate a load amount for each host processor. The reallocation step includes calculating a goodness off fit measurement such that the host processor is reallocated. In addition, the step includes distributing the load to the host processor according to the volume of the processor itself.
In general, another embodiment of the present invention is a method of driving a data storage device including a plurality of host connections such that the host processor is connected to the data storage device. The data storage device includes a digital memory allocated to a plurality of volumes. And mapping a volume to the host connector such that each host connector is connected to a subset corresponding to the volume, wherein a host processor connected to any one of the host connector is mapped to the host connector. Can only be accessed. The method of the present invention also provides a connection instruction so that the host processor maps a designated one of the volumes to one of the designated host connectors, and a release instruction such that the host processor is not mapped to a designated volume from the designated one of the host connectors. Supporting in the data storage processor.
In a preferred embodiment, the method further comprises: a connection command from the host processor to the data storage device, wherein the connection command designates a first volume and a first host connection, and transmits one command. And mapping the volume to the host connection by adding the first volume to the first host connection, upon receiving the connection command from the step.
The method also includes transmitting a release command to designate a first volume and a first host connection from one of the host processors to the data storage device, and in response to receiving the first release command. And remapping the volume to the host connection by removing the volume from the first host connection. In addition, the present invention includes the steps of monitoring I / O requests sent to each volume by each host processor, generating load statistics indicating the distribution of load in the host processor from the monitoring information; Detecting an imbalance in the amount of load and remapping the volume to the host connection.
The advantage of the present invention is that the load is redistributed in a very short time without the need to copy any data from one location to another. It simply reassigns ownership of the logical volume within the storage device at the host level.
Other advantages and features will emerge from the claims and the description of the preferred embodiments described below.
The invention shows a parallel database processing apparatus, as shown in FIG.
The device includes a plurality of host data processors 12 connected to the data storage device 14. The host data processor 12 is also labeled as host A, B, C, D in many parallel processors (hereinafter referred to as MPP), for example, PC's, workstations, SMP's (symmetric). Digital processor) or a CPU's. In the above preferred embodiment, the number of digital processing apparatuses is limited to three for simplicity, as described below. However, in practical systems the number of digital processing units can be much higher than in the MPP described above. Regardless of the number of host processors, a system comprising only three host processors is described below.
Hosts A-C are connected to the data storage device 14 through respective host connectors 16. And for simplicity, only one host connection 16 is shown for each host processor. However, from such a configuration, there are a plurality of connections between the data storage device and the host processor.
The host processor 12 is coupled with a high-speed bus 18 through which data, instructions, and management information are transmitted among the host processors 12.
The data storage device 14 includes a physical memory in which the data (eg, a record of the database) is stored. Referring to FIG. 2, the physical memory is allocated to the logical volume 20. Each logical volume 20 is accessible to the data storage device through each host connection 16. That is, the host processor 12 connected to the data storage device shows that the logical volume 20 is accessible. The physical memory in the storage device is implemented in a special case, where the allocation of the physical memory is not very important. In the embodiment described above, the data storage device is a symmetrix 5500, which is an integrated cache disk array sold by EMC Corporation of Hopkington, MA.
As enhanced at the host processor level, the host processor 12 is the logical volume 20 in the host processor 12 because each host processor has a different subset in the logical volume 20. It is divided into In other words, each host processor may access the storage device through the connection through the logical volume 20 of each host processor.
From a logical point of view, as shown in FIG. 2, the host processor 12 is connected to the storage device through the logic connection 17, and the particular logical volume 20 is associated with each of the above. One logical connection 17 is provided for the logical volume 20.
When the database is stored in the data storage 14, it is partitioned and allocated in the logical volume 20. Data and records constituting the database partitioned and allocated in the logical volume 20 are defined by a data management unit in the database system. How this is done is not particularly important in the present invention. Techniques for such an operation are well known and already known, and these techniques are not described in detail here because they are described in detail as standard contents when designing a database.
In a detailed embodiment, one of the host processors 12 (e.g., host A) performs the load performed by the DBS. That is, it requests and distributes the responsibility of performing transaction requests among the host processors 12, which are responsible for the database portion. The management host processor also monitors the load on each host processor and assigns ownership of logical volumes to the host processor 12.
However, the two management functions described above (that is, transaction processing management and load distribution management) are separate and characteristic functions. Although these functions have been described herein so as to be handled by one host processor, the above functions do not exist in the same host processor. In addition, it is preferable to perform a backup when processing such a management function. Therefore, if the management host processor does not operate, the management function is automatically switched to the backup of the host processor.
The host processor 12 obtains from the database system and the operating system any information that is specifically operated by the system. For example, the database system (ie, the software that manages the database) has information about how the logical files of the database are distributed in the logical volume. The operating system then knows that each physical connection to the storage device is connection_ids. The host A obtains the identity of the logical volume in the data storage device and the identity of the physical connection to the host processor 12 so that a map of the data units of the record or the database is stored in the logical volume 20. Find out if it is dispensed. With this information, the management host processor maps database records from a locally accessible memory 31 to an ownership table 38 which assigns ownership of the logical volume to the logical volume 20 and the host processor 12. To generate a database table 36. Every host processor accesses its database table and its own table in locally accessible memory. In other words, each host processor copies its data into its own table. When a given system chooses to access it, a detailed implementation is made.
When the system is first performed, ownership of the volume is distributed among any designated host processor. The purpose of the process is to distribute ownership so that when the database system is running, it is distributed with an equal load among the host processors. When initially assigning ownership, consider the information known about the database system from the previous process. In addition, it is preferable to assign ownership in consideration of the relative performance among the other host processors 12. For example, if host A has a higher performance than other host processors, more of the database (e.g., more volumes) is allocated to host A more than other host processors. The initial assignment of ownership also takes into account the previous contents of the portion of the database that is "hot spots". In such a case, it is desirable to assign ownership of the volume to be distributed among the database portions among the plurality of host processors.
In general, as in the embodiment described above, the processing and execution of the DBS or transaction request is handled as described below. The transaction request generated by the DBS is sent to the management host processor. Upon receiving the transaction request, host A outputs a transaction id, and decomposes the transaction id into a dependent load, each dependent load is recognized by the transaction id and the dependent load is stored in the data storage device. Data access operations associated with each data or record unit in the database. How detailed such an operation is performed is well known in a known database system, and thus will not be described herein.
On the other hand, when the transaction is decomposed into dependent loads, the management host processor loads the dependent loads from the host processor 12 as the host processor owns a unit or record of data accessed by the host processor while the dependent load is performed. To distribute. For each dependent load, host A consults database table 36 to determine the logical volume that contains the data unit on which the operation is performed. After the logical volume has been identified, the ownership table 38 is set such that the host processor 12 owns the logical volume containing the data unit (ie, the same as the host processor performing the operation including the data unit). See.
Each host processor 12 is represented by the transaction id and performs the dependent load to receive and return the management host processor. The management host processor using the transaction id combines with the results received from other host processors to ascertain which results match which transactions. Given all the dependent loads of a given transaction request, the management host processor outputs back to the user a result (e.g., confirmation, calculated data, or file of all data) indicating that the transaction request has completed execution. do.
In particular, the request of the transaction is a continuous stream to reach the respective host processor. Each such request is handled in the manner described below.
In addition, when performing the processing of the transaction request, each host processor also reports this information to a host processor that monitors and distributes the load of the host processor.
Each host processor runs in a queue that stores the dependent loads to be processed. The host processor performs a dependent load from the queue to access data stored in one of the logical volumes, and the host processor issues and sends an I / O request to the data storage device. The I / O request identifies the logical volume on which the I / O request will be coordinated, and this information is known from the database.
Each host processor 12 determines how busy the database unit is in charge of the host processor 12 to monitor the load of the host processor 12. In this particular case, each host processor 12 calculates the number of I / O requests sent to each logical volume owned by the host processor 12. Techniques for collecting, maintaining, and reporting such statistics are common and well known. According to one access method, the host processor includes a register 80, which has one of the logical volumes. The register 80 is counted in each logical volume and counts an I / O request that accumulates the number of registers 80 in each register 80.
Periodically, when polled by the management host processor, each host processor reports the accumulator count contained in the register 80 to the management host processor, and the count reported to the register 82. Save it. The frequency of the polling is determined elastically, and this operation is performed for a very short time or otherwise occurs, for example, daily, weekly or even less. In this case, however, if such deviation occurs, it is preferable to perform polling as frequently as possible in order to know the deviation during the short load amount.
When the host processor counts the management host processor, it clears the 80 and counts the start of the next period from zero. Therefore, the count reported to the management host processor for each poll is the same as the number of I / O requests sent to the data storage for the volume that has already been verified since polling is performed immediately.
The management host processor calculates a normal I / O request for each volume. The requested count is constantly updated and one of the registers 82 distributes the appropriately stored count for the last time in the total count of all volumes. After obtaining the normal rate for each volume, calculate the overall normal I / O request rate for each host processor by adding the normal I / O request rate to all logical volumes obtained by the host processor.
Of course, the load may be measured at a different value from the measured I / O request rate. For example, one can measure the length of a queue running on each host processor, even when combined with service time for each I / O request, CPU availability, or everything else. Other measurement methods for such load amount distribution are also within the scope of the present invention.
The management host processor uses the normalized I / O request rate for each host processor to detect the imbalance by distributing the load in the host processor. This operation can distribute the desired load amount by monitoring the load amount distribution. If a managed host processor detects an imbalance, for example, one or more host processors may load I / O requests to remove load imbalances by processing I / O requests at a much faster rate than they are trying to handle or desirable. Perform the rebalance process.
The reconciliation process analyzes the load distribution in the logical volume to make the logical volume sent to the other host processor equal, thereby eliminating or reducing imbalance and updating all data in the ownership table 38 to confirm. Ownership of the created volume.
The preferred load amount distribution is predetermined by the user by comparing the actual load amount distribution. This information is then stored in the load distribution table 42 in the memory 31 used by the management host processor. A particularly desirable distribution of load is to ensure that all host processors are evenly distributed. In other words, the preferred load distribution distributes the relative processing power of the host processor. Thus, for example, if one host processor has a faster speed than another host processor, it is distributed and processed at a relatively large load ratio compared to other host processors.
The management host processor uses a measure of "goodness of fit" to detect imbalances. Techniques for such statistical analysis are already well known, and there are many other methods. One suitable method related to the above relates to the least square square. The present invention includes the contents that can measure the imbalance. In a preferred embodiment a very simple measuring method is implemented. The management host processor simply calculates the ratio so that the normalized load of each host processor is distributed to a desired level, as shown in the load distribution table 42. If the normalized load amount is greater than or equal to a reference value or a reference rate in the arbitrary host processor, the management host processor processes the load after rebalancing.
The load rebalancing process examines the load volume statistics of the logical volume and looks for reallocation of volume ownership to bring about an optimal improvement in performance. The problem to solve such load rebalancing process is to optimize by advancing to the shortest distance among many other accesses. Certain of these methods are not central to the present invention. The optimization technique is to redistribute the load to reduce the imbalance and improve the performance (eg output) of all satisfactory systems. These programs are well known in the art and will not be discussed here in detail.
The load redistribution process also uses a measure of goodness off pit to confirm reallocation of volume ownership to obtain optimal results. The selected measurement as above quantifies how much desired load will distribute the volume ownership to the desired load. Measurements used to detect imbalances are also recognized as other measurements that are already well known. Preferred embodiments use minimum mean square measurements.
When the volume ownership is modified, check the procedure regarding whether the load is continuously processed while the ownership is changed. One access is to use two ownership assignment tables, one of which contains the previous ownership assignment, used for all transaction requests received by the management host processor before a certain time, and the other table Contains ownership assignment and is used to request all transactions received after a certain time. However, it is desirable to reassign volume ownership so that no two host processors can access the same volume at the same time. A simple access method to achieve this goal is to wait for all pending transactions to complete without allocating a transaction to the host processor, then reallocate volume ownership, and then perform an allocation transaction using the new ownership assignment. will be.
A simple example describes more clearly how the operation of a system implementing the present invention detects and corrects unbalanced loads. These examples relate to financial databases used for other accounting accounts. Acct. 555 and Acct. Acct. Include two accounting accounts, 777. The records of the database are distributed into eight logical volumes, as shown in FIG. In this case, Acct. The record of 555 is stored in Vol. 1, and Acct. The record of 777 is stored in Vol. Host A, the management host processor, receives a continuous stream of transaction requests from the DBS, and one of the requests of this continuous received transaction is Acct. Crediting $ 100 for the 555 and acct. Debit $ 100 for the 777.
Ownership of the volume is initially as shown in FIG. 2, where host A is assigned to Vols. Owns 1-3, host C is Vols. Owns 4-5 and host C is Vols. Own 6-8. This information is contained in the ownership table 38, as shown in FIG. 3A.
An example of how all requests are generally handled in the present invention is given in Acct. 555 and Acct. Use a special transaction related to 777. Host A has two such subsets of transaction requests, Acct. Stool movement with 555 and Acct. It is separated by the debit operation involving 777. And the host A is Acct. 555 is stored Vols. Host A performs its own credit operation because it owns 1, and Acct. Host C debits because 777 owns Vols.7, which is stored. The hosts A and C each perform part of the transaction. Host A acct $ 100. 555 credits, Host C acct. Debit in 777. When the above process is completed, each host processor sends an acknowledgment (with a result of the desired operation) to host A. When it is determined that all the operations of the transaction have been completed, the host A combines the results received from the execution of the host C and the host A itself, and sends the result (eg, an acknowledgement) to the user.
Each request for a transaction request from the DBS is handled in the same way. In particular, this results in a continuous flow of subsets for host A-C. Each of the host processors monitors the number of I / O requests by creating each logical volume that stores a count in register 80. Periodically, Host A polls all host processors for the contents of their register 80. Host A collects the calculated statistical data transmitted from the other host processor to Host A and stores the above information in register 82 per unit volume.
Host A then calculates the normalized request rate for each volume. To illustrate this, one example is to select a normalization factor that is 0.25 times the overall I / O request rate for all volumes (ie, the combined normalization ratio is 4). Host A stores in the table 44 normalized I / O request rates calculated for each logical volume. In the present example, during polling performed at time T 0 , FIG. 4A shows the normalized I / O request rate.
Using the information stored in the table 44, host A calculates the normalized I / O request rate for each host processor and stores the information in another table 48 (shown in FIG. 5A). . In any host processor, the normalized I / O request rate is calculated by summing the normalized I / O request rates of each logical volume the host processor has. And for example, the normalized I / O request rate for host C is Vol. 7 and Vol. 8, and the sum of normalized I / O request rates for the two logical volumes held by host C. In the statistics obtained at time T0, the normalized I / O request rates for hosts A, B, and C are 2, 1, and 1, respectively.
In this case, Host A is about twice the processing speed of other host processors. Therefore, a desirable or balanced load distribution is defined as 2: 1: 1, taking into account the processing power of the host processor. That is, host A is processed twice as fast as the I / O request, as in each of the other host processors. Host A is stored in the load distribution table to detect an unbalanced load amount using this information.
In the example, the distribution of the load amount at time T 0 is as stored in the load distribution table 42 preferably. Host A compares the actual distribution by determining if a reallocation of volume ownership is disproportionately requested. In this case, Host A uses a simple technique to detect the above imbalance. Host A of each host processor compares the desired normalized I / O request rate with the actual normalized I / O request rate. If the actual request rate on any host processor differs by more than a threshold (eg, 30%) from the desired request rate, the load redistribution process is performed to balance the system and reallocate the logical volume. In the load statistics obtained at time T0, Host A does not detect an imbalance that requires reallocation of volume ownership.
If during the next polling cycle at time T1, the normalized I / O request rate of the logical volume is changed, as shown in the updated table 44 shown in FIG. 4B. The host processor calculates the new normalized I / O request rate for each host processor and updates the table 48 with the new rate. During this period of time, the load statistics, the last check of the load amount of host B, increases relative to other host processors and the load amount of host A decreases relatively.
When Host A compares the target with current load statistics, it is detected that the normalized load on Host A is 50% higher than the target. Therefore, Host A checks the load on each logical volume to perform load rebalancing, and allows reallocation to be returned to the system for even more optimal load distribution. If there is another possibility for rebalancing the system, choose the allocation of volume ownership that yields the best result (i.e., load distribution that is closest to the desired load distribution that is specified in load distribution table 42). .
In this case, a single allocation plan is performed to ensure that the transfer of ownership of Vols. 5 to Host A is a more balanced distribution. Another solution is to host A into Vols. Transfer ownership of 5 and 8 to Vols. This is the same as transferring ownership of 3. The management host processor makes the most optimal choice and performs reallocation of ownership by updating the ownership table 38. In this case, the management host processor is assigned to Host A Vols. A, as in Table 3B shown in FIG. 3B. Reallocate 5.
The more detailed the memory is divided into logical volumes, the more likely the load of the detected imbalance will be adjusted. For example, if all I / O requests include data records stored in one logical volume, it is not desirable to transfer ownership of the logical volume to another host processor. This transfer of ownership simply solves the problem for other host processors. It is necessary to spread ownership of appropriate data records to the plurality of host processors. In this spread, the size of the logical volume can be enough to ensure that the main part of the database is spread to the plurality of host processors.
In another embodiment, the storage device limits the number of logical volumes that a host processor connects to access the storage device. In other words, if the system is divided into logical volumes, the host processor can only know a subset n of these logical volumes, where n <m.
The previously mentioned Symetrics 5500 is a storage device that limits the number of logical volumes that access any host processor. As shown in FIG. 2, the system metrics 5500 include a service console 50 that installs memory in a logical volume while the user is operating the system. By installing the command appropriately through the service console 50, the user maps the host connection, that is, the logical volume that designates the user to access the logical volume. The mapping of host connections to the logical volume is overlapping, but the number mapped to any host processor should not exceed the limit of the system. If the system has more logical volumes than the system's limit, no host processor can see all the volumes through any host processor. Therefore, if a particular host processor cannot access a particular logical volume, it must be remapped to be accessible to the host connection to which the host processor is connected. The SIMILICS 5500 allows a user to remap the logical volume to the host processor by entering the appropriate command through the service console 50.
In each of the host processors connected to the storage device, a logical volume having substantial ownership is limited to a logical volume that can identify the host processor through the host connection. The load rebalancing process described above is only to reallocate ownership to map the host connection within the storage of the logical volume. If the proposed assignment of ownership is required to identify the logical volume or transfer ownership of the logical volume to an inaccessible host processor, this reallocation would not be possible. For example, as shown in FIG. 2, the load rebalancing process may be performed using the Vols. Load reassignment is determined to reassign ownership of 7. However, host A is not mapped (ie connected) to the host connection to which it is connected, so if Vols. If 7 cannot access host A, such reassignment is not allowed. In short, the reassignment is done in the host realm, thus leaving the logical volume of the host connection away from the original mapping in storage.
As shown in FIG. 2, the mapping of host connections to logical volumes is controlled entirely by a connection table 52 in the data storage 14. Each host connection is shown in the transverse direction of the table 52, and each logical volume is shown in the corresponding transverse direction. Through the service console 50, the user can insert or delete the desired flag in the connection table 52 to define or modify the logical volume to be associated with any host connection. The primary criterion for mapping a logical volume for the host connection is that no host processor can be connected beyond the maximum range of logical volumes.
The contents of the connection table 52 represent actual ownership of each host processor and each host processor connected to the data storage device. That is, volume ownership reallocation at the host level includes a logical volume reassigned for a given host processor in a logical volume coupled to a host connection for the host processor.
As described above, in order to adjust the range of the load, a programmable switching device is added to the data storage device. The programmable switching device sends instructions to the data storage device for the management host processor to reconfigure the data storage device by changing a logical volume connected to the respective host connection.
The switching device performs a minimal command function that performs a storage system that is supported by the data storage device 14 and causes the host processor to re-form the mapping stored in the connection table 52. The two commands are as follows:
disconnect (connection_id, volume_id)
connect (connection_id, volume_id)
The connection_id means a channel of the storage device, and of course, the volume_id means a local volume in the memory of the storage device.
The command is transmitted from the service console 50 to the storage device through the out-of-band connection 60. In other words, the command is sent to the storage device through the current host connection.
Upon receiving a release command from the host, the storage device removes a particular logical volume from the same host connection. The storage device performs this operation by simply deleting the appropriate flag from the connection table 52. Once the flag is deleted, the host processor connected to the host connection will not be able to physically access the deleted volume.
Upon receiving the connect command, the storage device first determines if additional logical volumes have been added to the same host connection. In other words, it is determined whether the number of current logical volumes already accessible through the host processor is within the maximum range. If the logical volume is within the maximum range, the storage device maps the logical volume to the same host connection by setting the appropriate flag in the connection table 52. In other words, if the number of volumes mapped to the same host connection as above is in the maximum range, the storage device sends an error for the requesting host processor. Before any additional logical volume is mapped to the host connection, the flag for at least one volume connected to the host connection is first deleted by a release command.
A brief understanding of how the release and connection instructions load balance from the system shown in FIG. 2 is as follows. For this example, each channel can access up to four volumes, of course, the actual number of volumes and the number of volumes supported and accessed by each connection will generally be greater. However, this principle is much easier and more fully explained, even when using fewer numbers.
Furthermore, assume that the system is initially configured to connect a logical volume to a host processor as indicated by the flag in the connection table 52 of FIG. Each host connection is connected to the maximum number of logical volumes allowed by the data storage device (i.e. 4), and the mapping of volumes to host connections is overlapped. That is, the host connection portion to which the host A is connected is Vols. 1-4 access, the host connection is connected to the host B Vols. 3-6 access, and the host connection to the host C is Vols. You can access 5-8.
As described above, when an unbalanced load is detected at time T1, the management host processor returns a Vols. It involves a load rebalancing process that determines ownership of 5, which must be reassigned to host A to redistribute or balance the load. But Vols. Since 5 is not visible at host A, the management host processor sends a connect command to the data storage device to change the mapping of a logical volume to the host connection, thereby causing Vols. 5 is accessed through the host connection.
In addition, such a service is provided from the data storage device, which also provides a service for the host processor to obtain the contents of the connection table 52. The management host processor uses the service to locally copy the information storing connection table 49 in the local access.
Before outputting a connect command to the storage device to connect a specific volume of the host connection to host A, host A may refer to a copy of the connection table 52 to map another logical volume to the host connection of the host A. Determine whether or not the addition of another logical volume violates the maximum number defined by the data storage device. In this case, the connection appears to have the maximum number of logical volumes already assigned to the host connection. Therefore, Vols. To add 5, Host A must first output a release command to remove another volume from the connection. Because Host A and Host B are Vols. Since it is connected to 4, the load distribution from the connection to the host A Vols. By removing 4, it is not affected. Therefore, Host A may be assigned a Vols. Send a release command to the storage device to release 4, and update the connection table 49 at the host connection to record this change. The number of logical volumes connected to the host connection should be reduced to a maximum of four or less, and then host A will have a Vols. Send connect command to connect 5 By connecting logical volumes to suitably tuned host connections, host A redistributes the loads described above and reallocates ownership of the volumes. In general, it is particularly important that the transaction performed by the host processor is completed before the mapping of the volume to the host connection is changed. In many cases, this remapping prevents the host processor from accessing the logical volume when sending an I / O request.
In other embodiments, it is included within the following claims. For example, the present invention can use a fastening device to perform the consent of ownership at the host level (e.g., a locked protocol that prevents more than one host from accessing the same logical volume at the same time). This locking protocol is essentially another device that establishes agreement between users (eg, hosts) involved in accessing certain data at a given time. In the present invention, the locking device is a volume locking device.
权利要求:
Claims (17)
[1" claim-type="Currently amended] A method for controlling distributed processing in a system consisting of a plurality of host processors connected to a data storage device including a digital storage unit divided into a plurality of volumes, the method comprising:
Assigns ownership of a plurality of volumes to a plurality of host processors that own different subsets of the plurality of volumes, each host processor assigning I / O to any one of a plurality of volumes external to the subset of volumes. Preventing the request from being sent,
Monitoring the I / O requests sent by each of the plurality of host processors to the respective plurality of volumes;
Distributing the load amount among the plurality of host processors from the information obtained from the step to display a statistical load amount indication;
Detecting an unbalanced load amount of the load amount statistics;
And assigning ownership of a plurality of volumes to the plurality of host processors so that the load distribution is changed among the plurality of host processors in response to detecting a load amount imbalance.
[2" claim-type="Currently amended] 2. The method of claim 1, wherein the storing step stores a preferably distributed load amount in a memory accessible to at least one of the plurality of host processors, and wherein the detecting step detects an imbalance so as to detect the load amount statistics and the desired load amount. And distributing and comparing the dispensing.
[3" claim-type="Currently amended] 3. The method of claim 2, wherein said detecting step detects whether said load statistics are outside a desired distribution and are above a reference value.
[4" claim-type="Currently amended] 2. The method of claim 1, wherein generating the load statistic comprises calculating the load amount for each of a plurality of volumes and using the load measure for each volume to generate the load amount statistics for each host processor. Method for controlling the load amount distribution characterized in that.
[5" claim-type="Currently amended] 5. The method of claim 4 wherein the reallocating step calculates a measure of goodness off fit to identify the volume that is reallocated for the host processor.
[6" claim-type="Currently amended] 5. The method of claim 4, further comprising distributing the load to the host processor as the processor owns the volume.
[7" claim-type="Currently amended] 10. A method of operating a data storage device including a digital storage distributed over a plurality of volumes to include a plurality of host processors connecting the host processor to the data storage device.
The plurality of host connectors are coupled to a subset corresponding to the plurality of volumes by mapping the plurality of volumes to the plurality of host connectors, and a host processor connected to one of the plurality of host connectors is mapped to an arbitrary host connector. Access only the allocated memory,
Supporting, at the data storage device, a connection instruction to map a designated one of the volumes to a designated one of the host connectors;
And supporting, in the data storage device, a release command to cause a host processor to unmap from a designated one of the host connections to a designated one of the volumes.
[8" claim-type="Currently amended] The method of claim 7, further comprising: transmitting a first connection command from one of the host processors to the data storage device, the first connection command designating a first volume and a first host connection,
And remapping the plurality of volumes to a plurality of host connections by adding the first volume to the first host connection upon receiving the first connection command. Way.
[9" claim-type="Currently amended] The method of claim 7, further comprising: transmitting a first release command from one of the host processors to the data storage device, the first release command designating the first volume and the first host connection;
And remapping the plurality of volumes to the plurality of host connections by removing the first volume from the host connection, upon receiving the first release command. Way.
[10" claim-type="Currently amended] 8. The method of claim 7, further comprising: monitoring I / O requests sent to the plurality of volumes at each of the plurality of host processors;
Distributing a load amount among a plurality of host processors from the information obtained by the monitoring step to display load amount statistics;
Detecting a load amount when the load amount statistics are imbalanced;
And remapping a plurality of volumes to said plurality of host connections in accordance with said detecting said unbalanced load amount.
[11" claim-type="Currently amended] 11. The method of claim 10, further comprising assigning ownership to a plurality of volumes to the plurality of processors such that each processor has a different subset of the plurality of volumes, wherein each host processor is configured to: Inhibits sending I / O requests to any plurality of volumes outside the subset of volumes, and
And assigning ownership of a plurality of volumes to the plurality of host processors to change the distribution of loads among the plurality of host processors in accordance with the detecting load amount imbalance.
[12" claim-type="Currently amended] 12. The method of claim 10, further comprising: storing an amount of load that is preferably distributed in at least one accessible memory of the plurality of host processors, and wherein the detecting step is configured to detect an imbalanced amount of load. And comparing the quantities of the loads.
[13" claim-type="Currently amended] 13. The method of claim 12, wherein said detecting step detects whether a detected quantity statistics deviate from said desired dispensing amount by more than a reference amount.
[14" claim-type="Currently amended] 12. The method of claim 11, wherein generating statistics for the load amount comprises calculating load amounts for each of the plurality of volumes to generate load statistics for each host processor and performing load amount measurements for each volume. A method for controlling the distribution of load amount, characterized in that consisting of a step of using.
[15" claim-type="Currently amended] 15. The method of claim 14, wherein the reallocating step includes calculating a goodness off fit measurement to verify the volume reallocated to the host processor.
[16" claim-type="Currently amended] 12. The method of claim 11, further comprising distributing load to the host processor in accordance with the processor having the volume.
[17" claim-type="Currently amended] 16. The method of claim 15 wherein the remapping step is implemented during reallocation of reallocation to reallocate ownership.
类似技术:
公开号 | 公开日 | 专利标题
US10686724B2|2020-06-16|Distributed demand-based storage quality of service management using resource pooling
US9442763B2|2016-09-13|Resource allocation method and resource management platform
US20180084041A1|2018-03-22|Method and system for dynamically rebalancing client sessions within a cluster of servers connected to a network
EP2972746B1|2018-12-05|Storage unit selection for virtualized storage units
US8244888B2|2012-08-14|Method and mechanism for implementing tagged session pools
JP6185486B2|2017-08-23|A method for performing load balancing in a distributed computing environment
US8412890B2|2013-04-02|Scalable performance-based volume allocation in large storage controller collections
US10042772B2|2018-08-07|Dynamic structural management of a distributed caching infrastructure
US10635500B2|2020-04-28|Decoupling partitioning for scalability
US8863145B2|2014-10-14|Storage apparatus and load distribution method
US6640281B2|2003-10-28|Storage subsystem with management site changing function
US7447693B2|2008-11-04|Dynamic cluster database architecture
US6526420B2|2003-02-25|Non-linear constraint optimization in storage system configuration
US8205205B2|2012-06-19|Multi-objective allocation of computational jobs in client-server or hosting environments
CN100370755C|2008-02-20|Use method and system of independent external resources within requesting grid environments
US6282561B1|2001-08-28|Method and system for resource management with independent real-time applications on a common set of machines
US7240158B2|2007-07-03|System and method for caching results
US7231504B2|2007-06-12|Dynamic memory management of unallocated memory in a logical partitioned data processing system
US7716667B2|2010-05-11|Migrating virtual machines among computer systems to balance load caused by virtual machines
US8087025B1|2011-12-27|Workload placement among resource-on-demand systems
EP0426354B1|1997-12-29|Method for channel path load balancing and data processing system employing same
US8458714B2|2013-06-04|Method, system and program products for managing logical processors of a computing environment
CN101446885B|2013-03-27|Storage system and access control method of storage system
US8468548B2|2013-06-18|Multi-tenant, high-density container service for hosting stateful and stateless middleware components
US7415496B2|2008-08-19|Method for dividing computations
同族专利:
公开号 | 公开日
JPH11509659A|1999-08-24|
DE69619531D1|2002-04-04|
EP0842464B1|2002-02-27|
KR100379222B1|2003-07-16|
EP0842464A4|1998-10-07|
EP0842464A1|1998-05-20|
DE69619531T2|2002-10-31|
JP3459263B2|2003-10-20|
WO1997004384A1|1997-02-06|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
1995-07-21|Priority to US08/505,089
1995-07-21|Priority to US8/505,089
1995-07-21|Priority to US08/505,615
1995-07-21|Priority to US08/505,089
1995-07-21|Priority to US8/505,615
1995-07-21|Priority to US08/505,615
1996-07-16|Application filed by 폴더 데이씨에르, 데이시어 폴 티, 모쉬 야네, 이엠씨 코포레이션
1999-05-25|Publication of KR19990035802A
2003-07-16|Application granted
2003-07-16|Publication of KR100379222B1
优先权:
申请号 | 申请日 | 专利标题
US08/505,615|1995-07-21|
US08/505,089|US6173306B1|1995-07-21|1995-07-21|Dynamic load balancing|
US8/505,615|1995-07-21|
US08/505,615|US5860137A|1995-07-21|1995-07-21|Dynamic load balancing|
US08/505,089|1995-07-21|
US8/505,089|1995-07-21|
[返回顶部]